This disclosure relates to software systems, and more specifically, to database queries within enterprise software systems.
Enterprise software systems are typically sophisticated, large-scale systems that support many, e.g., hundreds or thousands, of concurrent users. Examples of enterprise software systems include inventory management systems, budget planning systems, order management systems, sales force management systems, business intelligence tools, enterprise reporting tools, project and resource management systems, and other enterprise software systems.
A computing device for a user typically connects to the enterprise software system using a computing network. The user computing device may provide an operating environment for execution of an enterprise software application that may be used to generate reports for review of information, such as average product price, cost per employee, sales targets, and the like. Often, the information used to generate the reports may be stored in a relational database, a multidimensional database, or both. A reporting component of the enterprise software application typically submits one or more queries to the database to retrieve and manipulate information used to generate the reports.
In certain database systems, information is organized using tables, including rows and columns, which specify data or relations among tables. Such database systems may typically organize data according to a relational star or snowflake schema. Both star and snowflake schemas organize data using centralized fact tables that reference multiple dimension tables. In addition, dimension tables of a snowflake schema may reference multiple related “snowflake” tables. For complex business scenarios, it is not uncommon for star or snowflake schemas to include multiple fact tables.
Information may be retrieved from the database using queries issued to the database system. For example, queries that conform to the structured query language (SQL), commonly referred to as SQL queries, may be used to retrieve data from one or more tables of the database. However, such queries may require the database system to operate over large amounts of data. For instance, in a data warehouse environment, a database system may operate over terabytes of data, performing multiple joins or other aggregation operations, thereby resulting in long response times.